
var roleListUrl = "/GetRoleServlet";





$(function () {

    // 初始化分页列表
    roleManage.initList();

})



var roleManage = {};


roleManage.initList = function () {
    $("#roleList").bootstrapTable({
        url: roleListUrl, //请求路径 **********************************
        method: 'post', //请求方式(*)
        contentType: 'application/x-www-form-urlencoded', //使用from表单方式提交(*)
        toolbar: '#toolbar', //工具按钮的容器
        striped: true, //是否启用隔行变色
        cache: false, //使用是否缓存 默认为true,所以一般情况下需要设置一下为false (*)
        pagination: true, //是否显示分页(*)
        sortable: false, //使用启用排序
        sortOrder: 'desc', //排序方式
        queryParams: roleManage.queryParams, //传递参数(*)  *************************************************
        queryParamsType: '',
        sidePagination: 'server', // 分页方式有两种 1.client 客户端分页  2.server分页
        pageNumber: 1, //初始化页数为第一页  显示第几页
        pageSize: 5, //默认每页加载行数
        pageList: [10, 25, 50, 100], //每页可选择记录数
        strictSearch: true,
        showColumns: false, // 是否显示所有的列
        showRefresh: false, // 是否显示刷新按钮
        minimumCountColumns: 2, // 最少允许的列数
        clickToSelect: true, // 是否启用点击选中行
        uniqueId: "id", // 每一行的唯一标识，一般为主键列
        showToggle: false, // 是否显示详细视图和列表视图的切换按钮
        cardView: false, // 是否显示详细视图
        detailView: false, // 是否显示父子表
        smartDisplay: false,

        responseHandler: function (result) {   // 通过网络请求得到   数据进行解析初始化*******************************
            console.log(result.data);
            if (result != null) {
                return {
                    'total': result.data.length, //总条数*************************************
                    'rows': result.data//所有的数据**********************************
                };
            }
            return {
                'total': 0, //总条数
                'rows': [] //所有的数据
            }
        },
        //列表显示
        columns: [{   // 配置显示的列表 ****************************
            field: 'roleName',
            title: "职位名称"

        },{
            field: 'description',
            title: "职位描述"

        },{
            field: 'status',
            title: "职位状态",
            formatter: function (value) {
                switch (value) {
                    case 0 :
                        return "禁用";
                    case 1 :
                        return "启用";
                }
            }
        }, {
            field: 'operation',
            events: buttonOperateEvent, // 设置每一行按钮的 点击事件*********************************
            title: '操作',
            formatter: function (value, row, index) {  // 为当前行增加 按钮*******************
                return roleManage.buttonOption(value, row, index);
            }
        }
        ]
    });
}

/**
 * 获取具体的参数
 * @param params
 * @returns {{pageNumber: *, searchName: *, pageSize: *, searchStaffId: *}}
 */
roleManage.queryParams = function (params) {
    return {
        "pageNumber": params.pageNumber, //当前页数
        "pageSize": params.pageSize, //每页条数
        "searchName": $("#searchName").val()
    }
}

/**
 * 按钮的点击事件
 * @type {{"click .delStaff": Window.buttonOperateEvent.click .delStaff, "click .updateStaff": Window.buttonOperateEvent.click .updateStaff}}
 */
window.buttonOperateEvent = {
    // 更新 员工 对应的 更新按钮的updateStaff
    'click .updateRole': function (e, value, row, index) {
        //row 这一行的数据
        // alert("修改操作")
        updateRole(row);
    },
    // 删除员工 更新按钮的delStaff
    'click .delRole': function (e, value, row, index) {
        roleManage.del(row);
    },
    'click .setRole': function (e, value, row, index) {
        roleTree.updateResource(row);
    }
}
/**
 * 为每一行添加按钮
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
roleManage.buttonOption = function (value, row, index) {
    var returnButton = [];
    returnButton.push('<button class="btn btn-info updateRole">修改</button>');
    returnButton.push('<button class="btn btn-danger delRole" style="margin: 5px; ">删除</button>');
    returnButton.push('<button class="btn btn-warning setRole">权限分配</button>');
    return returnButton.join('');
}

/**
 * 刷新列表
 */
roleManage.search = function () {
    //bootstrapTable 刷新
    $("#roleList").bootstrapTable('refresh');
}



roleManage.del = function (row) {
    /**
     * 1.一般情况下删除要加confirm
     */
    // alert(row.id);
    Modal.confirm({
        msg: "确认当前操作"  // 配置 确认窗口 ，也必须在html 设置窗口布局
    }).on(function (e) {
        if (e) {// true 代表确认删除
            // 在弹框确定
            /**
             * 2 调用ajax 请求删除员工
             */

            $.ajax({
                url: "/DeleteRoleSrevlet",// 自己完成后台
                type: 'post',
                data: {
                    "roleId": row.id,
                },
                dataType: 'json',
                success: function (result) {
                    alert(result.status);
                    if (result.status > 0) {
                        toastr['success']("操作成功");
                        $("#roleList").bootstrapTable('refresh');
                    } else {
                        toastr['error']("操作失败");
                    }
                }
            })

        }
    })
}
